package Control; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.text.ParseException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeMap; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; public class Helper { @SuppressWarnings("unchecked") public void saveInJSONFile(Map<String, List<String>> dictionaryData) { JSONObject obj = new JSONObject(); for (Map.Entry<String, List<String>> entry : dictionaryData.entrySet()) { obj.put(entry.getKey(), entry.getValue()); } try { File file = new File("dictionary.json"); file.createNewFile(); FileWriter fileWriter = new FileWriter(file); fileWriter.write(obj.toString()); fileWriter.flush(); fileWriter.close(); } catch (IOException e) { e.printStackTrace(); } } @SuppressWarnings("unchecked") public Map<String, List<String>> readFromJSONFile() throws org.json.simple.parser.ParseException, ParseException { Map<String, List<String>> dictionary = new TreeMap<String, List<String>>(); JSONParser parser = new JSONParser(); try { Object obj = parser.parse(new FileReader("dictionary.json")); JSONObject jsonObject = (JSONObject) obj; Set<String> keys = (Set<String>) jsonObject.keySet(); for (String key : keys) { List<String> values = new ArrayList<String>(); JSONArray arr = (JSONArray) jsonObject.get(key); Iterator<String> iterator = arr.iterator(); while (iterator.hasNext()) { values.add(iterator.next()); } dictionary.put(key, values); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return dictionary; } }